package net.codeyouth.codegen.bean

import net.codeyouth.codegen.util.PropUtil
import net.codeyouth.codegen.util.StringUtil

/**
 * @author Frank create on 16/2/22 14:20
 */
class Config {

    // 数据库驱动
    static String JDBC_DRIVER

    // 数据库连接
    static String JDBC_URL

    // Schema 名称
    static String JDBC_SCHEMA

    // 数据库用户
    static String JDBC_USER

    // 数据库用户密码
    static String JDBC_PASSWORD

    // 代码作者
    static String CONFIG_AUTHOR

    // 作者 email 地址
    static String CONFIG_EMAIL

    // 源文件路径(生成代码路径),基于maven的项目结构
    static String CONFIG_SRC_PATH

    // 资源文件路径
    static String CONFIG_RESOURCES_PATH

    // 项目基础包路径
    static String CONFIG_BASE_PACKAGE

    // DAO类继承的类
    static String CONFIG_DAO_EXTENDS_CLASS

    // DAO类实现的接口
    static String CONFIG_DAO_IMPLEMENTS_CLASSES

    // Service类继承的类
    static String CONFIG_SERVICE_EXTENDS_CLASS

    // Service类实现的接口
    static String CONFIG_SERVICE_IMPLEMENTS_CLASSES

    static {
        Properties props = PropUtil.load("config.properties")

        JDBC_DRIVER = StringUtil.checkNull(props.getProperty("jdbc.driver"), "jdbc.driver")
        JDBC_URL = StringUtil.checkNull props.getProperty("jdbc.url"), "jdbc.url"
        JDBC_SCHEMA = StringUtil.checkNull props.getProperty("jdbc.schema"), "jdbc.schema"
        JDBC_USER = StringUtil.checkNull props.getProperty("jdbc.user"), "jdbc.user"
        JDBC_PASSWORD = StringUtil.checkNull props.getProperty("jdbc.password"), "jdbc.password"

        CONFIG_AUTHOR = props.getProperty("config.author")
        CONFIG_EMAIL = props.getProperty("config.email")
        CONFIG_SRC_PATH = StringUtil.checkNull props.getProperty("config.src.path"), "config.src.path"
        CONFIG_RESOURCES_PATH = StringUtil.checkNull props.getProperty("config.resources.path"), "config.resources.path"
        CONFIG_BASE_PACKAGE = props.getProperty("config.base.package")
        CONFIG_DAO_EXTENDS_CLASS = props.getProperty("config.dao.extends.class")
        CONFIG_DAO_IMPLEMENTS_CLASSES = props.getProperty("config.dao.implements.classes")
        CONFIG_SERVICE_EXTENDS_CLASS = props.getProperty("config.service.extends.class")
        CONFIG_SERVICE_IMPLEMENTS_CLASSES = props.getProperty("config.service.implements.classes")
    }

}
